Пульт.Онлайн /

Формат трендов

Файлы трендов

  • По умолчанию располагаются в /pult_server/data/trends.
  • На каждую переменную пишется отдельный файл.
  • Имя файла соответствует глобальному имени переменной.
  • Каждый файл состоит из последовательных записей фиксированной длины, следующими друг за другом, без разделителей.
  • Каждая запись в файле представляет из себя 16 или 20 байт следующего формата:

ОБЫЧНЫЙ ФОРМАТ (для трендов с миллисекундной точностью)

|----------------------------------16B-------------------------->|
|<-----32b------>|<--6b-->|<--10b-->|<--16b-->|<------64b------->|
|----------------|--------|---------|---------|------------------|
|    timestamp   | errcnt |   ms    |  error  |      value       |
|----------------|--------|---------|---------|------------------|
|     uint32     |  uint8 | uint16  |  int16  |    dbl_IEEE754   |
|----------------|--------|---------|---------|------------------|

РАСШИРЕННЫЙ ФОРМАТ (для трендов с микросекундной точностью)

|------------------------------------20B---------------------------------->|
|<-----32b------>|<-12b-->|<--20b-->|<--16b-->|<------64b------->|<--16b-->|
|----------------|--------|---------|---------|------------------|---------|
|    timestamp   | errcnt |   ms    |  error  |      value       | RESERVD |
|----------------|--------|---------|---------|------------------|---------|
|     uint32     |  uint8 | uint16  |  int16  |    dbl_IEEE754   |  ?????  |
|----------------|--------|---------|---------|------------------|---------|

Поля записи

  • timestamp — время в секундах (Unix time).
  • errcnt — счетчик ошибок на интервале.
  • ms/us — миллисекунды/микросекунды.
  • error — код ошибки (если есть).
  • value — значение переменной (IEEE 754 double).

Все значения представлены в формате NBO (Network Byte Order, старший байт первый).
Файл трендов не содержит заголовков. Все записи независимы.

Пример файла трендов

В данном примере показаны первые 8 записей. Разберем первую запись:

0x69 0x8D 0xF6 0x85 - timestamp, показывающий время изменения статуса переменной (1770911365, GMT 12.02.2026 15:49:25)
0x01 0xAD - 0000000110101101 - 6 бит errcnt (000000 = 0), затем 10 бит - миллисекунды (0110101101 = 429)
0x00 0x00 - код ошибки переменной (0)
0x40 0x42 0x80 0x00 0x01 0x00 0x00 0x00 - значение переменной в формате IEEE754 Double (0x4042800001000000 ~= 3.7)

Данная запись показывает, что переменная P1_N3_hum в момент времени GMT 12.02.2026 15:49:25.429 изменила свой статус и приняла значение 3.7 с кодом ошибки 0.

Поле errcnt

Вспомогательное поле errcnt позволяет отследить наличие ошибок в интервале между записями, когда записи выбираются с разрядкой (через определенный интервал). errcnt увеличивается на 1 при записи статуса переменной, содержащего код ошибки. Таким образом, если значение errcnt между двумя выборками различается - это говорит о наличии ошибки в интервале между выбранными записями. Данная информация может использоваться для индикации ошибок на графике тренда.

  Email
   fdb_list
   fdb_load
   fdb_move
   fdb_paths
   node_list
   subscribe
   user_list
   user_save
   var_get
   var_list
   var_set